Skip to content

Refactor(android): consume the shared editor through public packages - #66

Closed
adibhanna wants to merge 2 commits into
mainfrom
refactor/ecosystem-boundaries-pr
Closed

adibhanna wants to merge 2 commits into
mainfrom
refactor/ecosystem-boundaries-pr

Conversation

@adibhanna

@adibhanna adibhanna commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Replace the cloned desktop source and private renderer/store imports with immutable core, bridge-contract, and shared-domain packages. Android now owns its native storage, Cloud transport, gestures, and keyboard behavior while using public APIs for editor and workspace actions.

  • Coordinate native vault rename/move with save draining, workspace identity, reopen, and rollback.
  • Reject stale attachment and gesture contexts after a workspace transition.
  • Preserve SAF error distinctions for missing files, directories, revoked access, and provider failures.
  • Add package-boundary checks and disposable native runtime/provider fixtures.

The vendored package set includes the v2.50.4 fixes. The Android application version is unchanged.

Validation

  • Clean package installation without a desktop source checkout; boundary check, typecheck, 138 tests, and production/fixture builds.
  • Android native unit tests, lint, debug build, and four instrumentation tests.
  • Disposable emulator: 20 runtime checks and three cold-start checks, including exact Unicode/trailing-space persistence, attachments, task scanning, rename, comments, Trash/Restore, and whole-vault relocation.

Draft dependencies

Depends on the main ZenNotes public-package migration. The exact vendored archives are review candidates with dirty-source provenance; replace them with reviewed clean artifacts before release. Real account-backed Cloud acceptance remains a staging gate. No application release or deployment is included.

Related boundary PRs

Replace the cloned desktop source and private renderer/store imports with immutable core, bridge-contract, and shared-domain packages. Android now owns its native storage, Cloud transport, gestures, and keyboard behavior while using public APIs for editor and workspace actions.

- Coordinate native vault rename/move with save draining, workspace identity, reopen, and rollback.
- Reject stale attachment and gesture contexts after a workspace transition.
- Preserve SAF error distinctions for missing files, directories, revoked access, and provider failures.
- Add package-boundary checks and disposable native runtime/provider fixtures.

The vendored package set includes the v2.50.4 fixes. The Android application version is unchanged.
The production audit used to run inside the desktop source checkout, whose
root manifest overrides the nested nanoid and mermaid parser versions that
Excalidraw pulls in. Installing the core as a package moved the audit into
this repository, where no overrides existed, so the same dependency tree
failed on high advisories against nanoid 3.3.3, nanoid 4.0.2, and
lodash-es 4.17.21.

Add the same overrides. npm keeps already-nested lockfile entries even when
overrides change, so the stale nested entries were removed and the tree
re-resolved: 21 packages drop out, the resolution matches the desktop, and
the audit reports nothing. The lockfile is stable on a second resolve. The
same change on the local tree with the newer core candidate passes the
boundary check, typecheck, unit tests, and the production build.
@adibhanna

Copy link
Copy Markdown
Contributor Author

Superseded by #69, which carries the same migration on the published core-2.51.0-core.h49d73b531d346192 archives (desktop commit 8ff2cb86, clean tree) plus the later native work, the dependabot bumps, and the 1.1.21 (versionCode 23) bump.

@adibhanna adibhanna closed this Sep 16, 2026
@adibhanna
adibhanna deleted the refactor/ecosystem-boundaries-pr branch September 19, 2026 04:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant